import {ElMessage} from 'element-plus';
// hex 颜色转化成rgb 颜色 str 颜色字符串 返回处理后的颜色值

export function hexToRgb(str:any){
    let hexs:any = '';
    let reg = /^\#?[0-9A-Fa-f]{6}$/;
    if(!reg.test(str)) return ElMessage.warning('输入错误的hex');
    str = str.replace('#','');
    hexs = str.match(/../g);
    for(let i=0;i<3;i++) hexs[i] = parseInt(hexs[i],16);
    return hexs;

}
// rgb 堰塞湖转化成Hex 颜色， r 代表红色 g 代表绿色 b 代表蓝色 返回处理后 的颜色值

export function rgbToHex(r:any,g:any,b:any){
    let reg = /^\d{1,3}$/;
    if(!reg.test(r) || !reg.test(g) || !reg.test(b)) return ElMessage.warning('输入错误的rag颜色值');
    let hexs = [r.toString(16),g.toString(16),b.toString(16)];
    for(let i=0;i<3;i++) if(hexs[i].length ==1) hexs[i] = `0${hexs[i]}`
    return `#${hexs.join('')}`

}

// 加深颜色值  color 颜色值字符串 level 加深的程度 ，0-1之间  返回处理后的颜色值

export function getDarkColor(color:string,level:number){
    let reg = /^\#?[0-9A-Fa-f]{6}$/;
    if(!reg.test(color)) return ElMessage.warning('输入错误的Hex颜色值');
    let rgb = hexToRgb(color);
    for(let i=0;i<3;i++) rgb[i]= Math.floor(rgb[i] * (1 - level));
    return rgbToHex(rgb[0],rgb[1],rgb[2])
}

// 变迁颜色值
export  function getLightColor(color:string,level:number){
    let reg = /^\#?[0-9A-Fa-f]{6}$/;
    if(!reg.test(color)) return ElMessage.warning('输入错误的hex颜色值');
    let rgb = hexToRgb(color);
    for(let i=0;i<3;i++) rgb[i] = Math.floor((255 -rgb[i]) * level +rgb[i]);
    return rgbToHex(rgb[0],rgb[1],rgb[2])

}